{
 "cells": [
  {
   "cell_type": "raw",
   "metadata": {
    "raw_mimetype": "text/restructuredtext"
   },
   "source": [
    ".. _nb_tnk:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## TNK\n",
    "\n",
    "Tanaka suggested the following two-variable problem:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Definition**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\\begin{equation}\n",
    "\\newcommand{\\boldx}{\\mathbf{x}}\n",
    "\\begin{array}\n",
    "\\mbox{Minimize} & f_1(\\boldx) = x_1, \\\\\n",
    "\\mbox{Minimize} & f_2(\\boldx) = x_2, \\\\\n",
    "\\mbox{subject to} & C_1(\\boldx) \\equiv x_1^2 + x_2^2 - 1 - \n",
    "0.1\\cos \\left(16\\arctan \\frac{x_1}{x_2}\\right) \\geq 0, \\\\\n",
    "& C_2(\\boldx) \\equiv (x_1-0.5)^2 + (x_2-0.5)^2 \\leq 0.5,\\\\\n",
    "& 0 \\leq x_1 \\leq \\pi, \\\\\n",
    "& 0 \\leq x_2 \\leq \\pi.\n",
    "\\end{array}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Optimum**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since $f_1=x_1$ and $f_2=x_2$, the feasible objective space is also\n",
    "the same as the feasible decision variable space. The unconstrained \n",
    "decision variable space consists of all solutions in the square\n",
    "$0\\leq (x_1,x_2)\\leq \\pi$. Thus, the only unconstrained Pareto-optimal \n",
    "solution is $x_1^{\\ast}=x_2^{\\ast}=0$. \n",
    "However, the inclusion of the first constraint makes this solution\n",
    "infeasible. The constrained Pareto-optimal solutions lie on the boundary\n",
    "of the first constraint. Since the constraint function is periodic and\n",
    "the second constraint function must also be satisfied,\n",
    "not all solutions on the boundary of the first constraint are Pareto-optimal. The \n",
    "Pareto-optimal set is disconnected.\n",
    "Since the Pareto-optimal\n",
    "solutions lie on a nonlinear constraint surface, an optimization\n",
    "algorithm may have difficulty in finding a good spread of solutions across\n",
    "all of the discontinuous Pareto-optimal sets."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Plot**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "code": "usage_problem.py",
    "section": "bnh"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 373
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pymoo.factory import get_problem\n",
    "from pymoo.util.plotting import plot\n",
    "\n",
    "problem = get_problem(\"tnk\")\n",
    "plot(problem.pareto_front(), no_fill=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
